#!/usr/bin/env python 
# encoding: utf-8 
# @Author: Jacqueline
# @file: 02元素定位三大等待.py
# @time: 2021/2/20 17:07
''''''
"""
定位表达式在浏览器能够定位到，放在代码中定位不到的原因
等待
1.强制等待：
    time.sleep(n):强制暂停n秒后再往下执行不推荐不灵活浪费时间
2.隐式等待:元素
    driver.implicitly_wait() ：加载出来即执行driver对象调用，设置一次对全局生效，极其推荐
                               如果元素超过了设置的最大等待时间还未出现就会报错：等待超时
                               相当于显示的元素存在
3.显式等待:多了更多的元素状态、窗口
    1. 等待元素的定位表达式
       loc = (BY.XXX,'表达式') 写在单独的文件里
    2. 创建一个等待对象wait = WebDriverWait(driver,20,1)，需要三个参数
        参数1：driver对象
        参数2：等待的最大时间
        参数3：轮询时间（没间隔多次时间去查询一次元素是否出现）
    3. 创建一个等待条件对象，传入定位表达式
        ec = presence_of_element_located
    3. 调用等待对象的.until()方法传入等待的条件

"""
from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


driver = webdriver.Chrome()
# 设置隐式等待时间
driver.implicitly_wait(15)
driver.get('http://10.10.8.222:9999/nanchang-afhy/index.html#/eventManagement')
# driver.save_screenshot()
# driver.get('https://www.ketangpai.com/#/login')



account = driver.find_element_by_xpath('//*[@id="app"]/div[2]/div[2]/div[2]/div/div/form/div[1]/div/div/input').send_keys('ktp0216595585')
pwd = driver.find_element_by_xpath('//*[@id="app"]/div[2]/div[2]/div[2]/div/div/form/div[2]/div/div/input').send_keys('hjq123')
login = driver.find_element_by_xpath('//*[@id="app"]/div[2]/div[2]/div[2]/div/div/div[1]/div[1]/button ').click()

# 显示等待
# # 元素的定位表达式
# loc = (By.XPATH,'r//*[@id="app"]/div[2]/div[2]/div[2]/div/div/form/div[1]/div/div/input')
# # 创建一个等待对象
# wt = WebDriverWait(driver,20,0.5)
# # 创建一个等待条件对象
# ec = EC.presence_of_element_located(loc)
# # 调用等待对象的until方法传入等待条件对象
# wt.until(ec)

# ——————————————————————————————
WebDriverWait(driver,10,0.5).until(
    EC.presence_of_element_located(
        (By.XPATH,'')
    )
)